Many organizations and systems include server computer systems that provide various useful functions to the organization. For example, even a small business may have an email server, one or more database servers, a company intranet portal hosted by a web server, a file server, and so forth. These functions may reside on a single computer system or on several computer systems, such as to increase scalability and provide adequate resources for each function based on anticipated or measured loads. Products, such as Microsoft Windows Small Business Server provide multiple server functions in a single product.
Each of these servers and functions include configuration data that is managed by one or more administrators. For example, a firewall server includes configuration data describing open ports, protocols allowed through the ports, time of day limitations, and so forth. As the number of servers and server functions increases, it can become difficult for administrators to manage the configuration data. Tools such as MICROSOFT™ Baseline Configuration Analyzer (MBCA) provide automated ways for administrators to collect and analyze configuration data from the many servers in an enterprise. Examples of configuration data analyzed include registry values, configuration stored in the file system, port numbers, certificate expiration dates, product versions, and so forth.
Even with such tools, configuration modeling in an enterprise computing environment involves reasoning across enormous amounts of data. This data is gathered by interrogating hundreds or thousands of nodes in the enterprise computing infrastructure. The size of the data and the amount of time needed to create instances of a data model prohibits the use of traditional modeling techniques. In addition, models tend to have a high degree of redundancy in their component elements, making the expression of the model unnecessarily complex. As the size of the organization grows and the number of servers increases, the problem only becomes worse. Configuration problems also multiply. For example, a farm of 10 email servers may include a single server that is not configured like the others due to a misconfiguration, and the amount of searching that an administrator performs to identify such problems grows as the size of the organization increases. This is often contrary to the organization's expectations as the organization's users are less tolerant of reliability problems in a large enterprise than a small business.